<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>EJAM/EJSCREEN comparisons - Key function Best starting point for comparing single-site (EJScreen API) and multisite (EJAM) results — ejscreen_vs • EJAM</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><link href="../deps/font-awesome-6.4.2/css/all.min.css" rel="stylesheet"><link href="../deps/font-awesome-6.4.2/css/v4-shims.min.css" rel="stylesheet"><script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><meta property="og:title" content="EJAM/EJSCREEN comparisons - Key function Best starting point for comparing single-site (EJScreen API) and multisite (EJAM) results — ejscreen_vs"><meta name="description" content="EJAM/EJSCREEN comparisons - Key function
Best starting point for comparing single-site (EJScreen API) and multisite (EJAM) results"><meta property="og:description" content="EJAM/EJSCREEN comparisons - Key function
Best starting point for comparing single-site (EJScreen API) and multisite (EJAM) results"><meta property="og:image" content="https://usepa.github.io/EJAM/logo.svg"></head><body>
    <a href="#main" class="visually-hidden-focusable">Skip to contents</a>


    <nav class="navbar navbar-expand-lg fixed-top bg-light" data-bs-theme="light" aria-label="Site navigation"><div class="container">

    <a class="navbar-brand me-2" href="../index.html">EJAM</a>

    <small class="nav-text text-warning me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Released version">2.32.0</small>


    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div id="navbar" class="collapse navbar-collapse ms-3">
      <ul class="navbar-nav me-auto"><li class="active nav-item"><a class="nav-link" href="../reference/index.html">Reference</a></li>
<li class="nav-item dropdown">
  <button class="nav-link dropdown-toggle" type="button" id="dropdown-articles" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true">Articles</button>
  <ul class="dropdown-menu" aria-labelledby="dropdown-articles"><li><hr class="dropdown-divider"></li>
    <li><h6 class="dropdown-header" data-toc-skip>Overview for EJAM Users</h6></li>
    <li><a class="dropdown-item" href="../articles/0_whatis.html">What is EJAM</a></li>
    <li><a class="dropdown-item" href="../articles/0_webapp.html">Using EJAM</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><h6 class="dropdown-header" data-toc-skip>For analysts using R</h6></li>
    <li><a class="dropdown-item" href="../articles/1_installing.html">Installing the EJAM R package</a></li>
    <li><a class="dropdown-item" href="../articles/2_quickstart.html">Quick Start Guide</a></li>
    <li><a class="dropdown-item" href="../articles/3_analyzing.html">Basics of Using EJAM for Analysis in RStudio</a></li>
    <li><a class="dropdown-item" href="../articles/4_advanced.html">Advanced Features</a></li>
  </ul></li>
<li class="nav-item"><a class="nav-link" href="../news/index.html">Changelog</a></li>
      </ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search">
 <input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json"></form></li>
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/USEPA/EJAM/" aria-label="GitHub"><span class="fa fab fa-github fa-lg"></span></a></li>
      </ul></div>


  </div>
</nav><div class="container template-reference-topic">
<div class="row">
  <main id="main" class="col-md-9"><div class="page-header">
      <img src="../logo.svg" class="logo" alt=""><h1>EJAM/EJSCREEN comparisons - Key function Best starting point for comparing single-site (EJScreen API) and multisite (EJAM) results</h1>
      <small class="dont-index">Source: <a href="https://github.com/USEPA/EJAM/blob/HEAD/R/ejscreen_vs_ejam_.R" class="external-link"><code>R/ejscreen_vs_ejam_.R</code></a></small>
      <div class="d-none name"><code>ejscreen_vs.Rd</code></div>
    </div>

    <div class="ref-description section level2">
    <p>EJAM/EJSCREEN comparisons - Key function
Best starting point for comparing single-site (EJScreen API) and multisite (EJAM) results</p>
    </div>

    <div class="section level2">
    <h2 id="ref-usage">Usage<a class="anchor" aria-label="anchor" href="#ref-usage"></a></h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">ejscreen_vs</span><span class="op">(</span></span>
<span>  defdir <span class="op">=</span> <span class="st">"."</span>,</span>
<span>  <span class="va">n</span>,</span>
<span>  <span class="va">newpts</span>,</span>
<span>  pts <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  radius <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  fips <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  shapefile <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  <span class="va">savedejscreentableoutput</span>,</span>
<span>  x100fix <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span>  x100varnames <span class="op">=</span> <span class="va">names_pct_as_fraction_ejamit</span>,</span>
<span>  <span class="va">...</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div class="section level2">
    <h2 id="arguments">Arguments<a class="anchor" aria-label="anchor" href="#arguments"></a></h2>


<dl><dt id="arg-defdir">defdir<a class="anchor" aria-label="anchor" href="#arg-defdir"></a></dt>
<dd><p>folder to save results files in</p></dd>


<dt id="arg-n">n<a class="anchor" aria-label="anchor" href="#arg-n"></a></dt>
<dd><p>how many places to analyze and compare</p></dd>


<dt id="arg-newpts">newpts<a class="anchor" aria-label="anchor" href="#arg-newpts"></a></dt>
<dd><p>logical, if need new set of random locations</p></dd>


<dt id="arg-pts">pts<a class="anchor" aria-label="anchor" href="#arg-pts"></a></dt>
<dd><p>data.frame of points with columns lat,lon such as testpoints_10</p></dd>


<dt id="arg-radius">radius<a class="anchor" aria-label="anchor" href="#arg-radius"></a></dt>
<dd><p>miles (when analyzing points)</p></dd>


<dt id="arg-fips">fips<a class="anchor" aria-label="anchor" href="#arg-fips"></a></dt>
<dd><p>vector of fips codes if relevant (instead of pts, radius, shapefile)</p></dd>


<dt id="arg-shapefile">shapefile<a class="anchor" aria-label="anchor" href="#arg-shapefile"></a></dt>
<dd><p>not implemented directly but shapefiles can be analyzed
if fips provided are for cities, or if newpts are requested to be cities,
which are analyzed using shapefiles in EJAM,
but provided as fips to <code><a href="ejscreenit.html">ejscreenit()</a></code> for the API.
Select new, shape (city) options in interactive mode.</p></dd>


<dt id="arg-savedejscreentableoutput">savedejscreentableoutput<a class="anchor" aria-label="anchor" href="#arg-savedejscreentableoutput"></a></dt>
<dd><p>is a data.table from ejscreenit()$table</p></dd>

</dl></div>
    <div class="section level2">
    <h2 id="value">Value<a class="anchor" aria-label="anchor" href="#value"></a></h2>
    <p>a list of data frames, with names
EJSCREEN, EJAM, EJSCREEN_shown, EJAM_shown, same_shown,
ratio, diff, absdiff, pctdiff, abspctdiff</p>
<p>diff is EJAM - EJSCREEN</p>
<p>ratio is EJAM / EJSCREEN</p>
<p>pctdiff is ratio - 1</p>
<p>abs is absolute value</p>
<p>For each data.frame, colnames are indicators like pop, blockcount_near_site, etc.
and rows represent sites analyzed.</p>
    </div>
    <div class="section level2">
    <h2 id="details">Details<a class="anchor" aria-label="anchor" href="#details"></a></h2>
    <p>THIS IS FOR INTERACTIVE RSTUDIO CONSOLE USE
TO RUN A SET OF POINTS THROUGH BOTH
EJScreen and the EJAM multisite tool
AND SAVE STATS ON THE DIFFERENCES</p>
<p>Also lets you use saved ejscreenapi results and input points
so you can iterate and rerun just the EJAM portion and compare to the saved benchmark data.</p>
<p>The EJAM tool/ function called <code><a href="ejamit.html">ejamit()</a></code>
does not rely on EJScreen's typical single-location approach to do the calculations
and instead tries to replicate what the EJScreen single-site report would do.
As a result, while</p><ul><li><p><em><code><a href="ejamit.html">ejamit()</a></code> is much, much faster than <code><a href="ejscreenit_for_ejam.html">ejscreenit_for_ejam()</a></code></em> and</p></li>
<li><p><em>provides additional information</em> (distribution of distances by group, etc.)</p></li>
<li><p><em>features</em> (histograms, spreadsheet with heatmaps, etc.)</p></li>
<li><p><em>flexibility</em> (easy for analysts using R to customize analysis, etc.),
<em><code><a href="ejamit.html">ejamit()</a></code> does not always exactly replicate EJScreen</em> –
does not provide 100% identical results (percentiles, etc.) for
every indicator in every analysis at every location.
For almost all indicators, at 97% of sites tested, the difference is
either zero difference in the reports or is smaller than a 1% difference.
There may be edge cases where an indicator differs significantly.
Any differences are due to slight variations in</p></li>
<li><p>details of the spatial calculations (which blocks are nearby,
sometimes counting 1 extra block as 2.995 miles away while
EJScreen counts it as outside the 3 mile radius, e.g.,
often differing by just &lt;50 feet out of 3 miles).
and possibly other factors like</p></li>
<li><p>rounding  (how many digits are retained during calculations,
and how many are shown in final reports via rounding and/or significant digits)</p></li>
<li><p>percentile assignment method should be the same now
(how percentile lookup tables are used,
how ties are treated in percentile lookup tables, etc.)</p></li>
<li><p>possibly other undocumented small differences in some calculation step</p></li>
</ul></div>
    <div class="section level2">
    <h2 id="see-also">See also<a class="anchor" aria-label="anchor" href="#see-also"></a></h2>
    <div class="dont-index"><p>Relies on <code><a href="ejscreen_vs_ejam.html">ejscreen_vs_ejam()</a></code> <code><a href="ejscreen_vs_ejam_alreadyrun.html">ejscreen_vs_ejam_alreadyrun()</a></code> <code><a href="ejscreen_vs_explain.html">ejscreen_vs_explain()</a></code></p></div>
    </div>

    <div class="section level2">
    <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</span> <span class="op">{</span> <span class="co"># \dontrun{</span></span>
<span><span class="fu">load_all</span><span class="op">(</span><span class="op">)</span> <span class="co"># so it is easier to use internal functions</span></span>
<span></span>
<span><span class="va">vs</span> <span class="op">=</span> <span class="fu">ejscreen_vs</span><span class="op">(</span>pts <span class="op">=</span> <span class="va">testpoints_100</span>, radius <span class="op">=</span> <span class="fl">3</span><span class="op">)</span></span>
<span><span class="fu"><a href="ejscreen_vs_explain.html">ejscreen_vs_explain</a></span><span class="op">(</span><span class="va">vs</span>, <span class="fl">1</span><span class="op">:</span><span class="fl">2</span><span class="op">)</span></span>
<span></span>
<span></span>
<span></span>
<span><span class="co"># To filter that to just the ones where rounded pop disagrees</span></span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/table.html" class="external-link">table</a></span><span class="op">(</span><span class="va">vs</span><span class="op">$</span><span class="va">same_shown</span><span class="op">$</span><span class="va">pop</span><span class="op">)</span></span>
<span> <span class="va">vspopoff</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/lapply.html" class="external-link">lapply</a></span><span class="op">(</span><span class="va">vs</span>, <span class="kw">function</span><span class="op">(</span><span class="va">df</span><span class="op">)</span> <span class="va">df</span><span class="op">[</span><span class="op">!</span><span class="va">vs</span><span class="op">$</span><span class="va">same_shown</span><span class="op">$</span><span class="va">pop</span>, <span class="op">]</span><span class="op">)</span></span>
<span> </span>
<span><span class="co">##  To filter that to just the ones where blockcount was identical, </span></span>
<span><span class="co">#   to exclude that as source of difference</span></span>
<span><span class="va">vs_blocksmatch</span> <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/lapply.html" class="external-link">lapply</a></span><span class="op">(</span><span class="va">vs</span>, <span class="kw">function</span><span class="op">(</span><span class="va">df</span><span class="op">)</span> <span class="va">df</span><span class="op">[</span><span class="va">vs</span><span class="op">$</span><span class="va">absdiff</span><span class="op">[</span>, <span class="st">"blockcount_near_site"</span><span class="op">]</span> <span class="op">==</span> <span class="fl">0</span>, <span class="op">]</span><span class="op">)</span></span>
<span><span class="op">}</span> <span class="co"># }</span></span></code></pre></div>
    </div>
  </main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
    </nav></aside></div>


    <footer><div class="pkgdown-footer-left">
  <p>US EPA 2024</p>
</div>

<div class="pkgdown-footer-right">
  <p>EJAM Version 2.32.0</p>
</div>

    </footer></div>





  </body></html>

